{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d904dee",
   "metadata": {},
   "source": [
    "# Example 13: Phase transition"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6465ec94",
   "metadata": {},
   "source": [
    "In this example, we will use KAN to learn phase transitions in data. Phase transition is an important concept in science. We consider a toy example $f(x_1,x_2,x_3)$ is 1 if $g(x_1,x_2,x_3)>0$, and is 0 if $g(x_1,x_2,x_3)<0$. $g(x_1,x_2,x_3)={\\rm sin}(\\pi x_1)+{\\rm cos}(\\pi x_2)+{\\rm tan}(\\frac{\\pi}{2}x_3)$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94056ef6",
   "metadata": {},
   "source": [
    "Intialize model and create dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a59179d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from kan import KAN, create_dataset\n",
    "import torch\n",
    "\n",
    "\n",
    "model = KAN(width=[3,1,1], grid=3, k=3)\n",
    "\n",
    "# create dataset\n",
    "f = lambda x: (torch.sin(torch.pi*x[:,[0]]) + torch.cos(torch.pi*x[:,[1]]) + torch.tan(torch.pi/2*x[:,[2]]) > 0).float()\n",
    "dataset = create_dataset(f, n_var=3)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3837440b",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(0.5060)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "torch.mean(dataset['train_label'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fe38f7c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 7 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8627b850",
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the last activation to be tanh\n",
    "model.fix_symbolic(1,0,0,'tanh',fit_params_bool=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3957140b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x400 with 7 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model(dataset['train_input'])\n",
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "be0b0daf",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 6.31e-02 | test loss: 1.04e-01 | reg: 2.23e+02 : 100%|██| 50/50 [00:05<00:00,  8.77it/s]\n"
     ]
    }
   ],
   "source": [
    "model.fit(dataset, opt=\"LBFGS\", steps=50);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "2f9b37a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtFklEQVR4nO3deVSV9b4/8Pf3YTNsQGUUJJxArplDoikeh8wJupLD0Vt6zLx6nep4La1WyzxqHi01s5NaJztpmno1PIlZiollljkc9aiIsygOgRPTRsbNhv39/ZHsHyjC3vBs9sD7tVartdjshw/y3c/7+Q7P9xFSSgkiIiIVKbYugIiInA/DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1WlsXQCRI5BSIisrC/n5+fD29oa/vz+EELYui8husedCVA2dTocVK1YgIiICgYGBaN26NQIDAxEREYEVK1ZAp9PZukQiuyT4JEqiqiUmJmLkyJEoLCwE8HvvpVx5r8XT0xPx8fGIiYmxSY1E9orhQlSFxMRExMbGQkoJo9H4yO9TFAVCCCQkJDBgiCpguBA9QKfTITQ0FEVFRdUGSzlFUaDVapGWlgYfHx/rF0jkADjnQvSA9evXo7Cw0KxgAQCj0YjCwkJs2LDBypUROQ72XIgqkFIiIiICqampsOSjIYRAWFgYUlJSuIqMCAwXokoyMzMRGBhYp/f7+/urWBGRY+KwGFEF+fn5dXp/Xl6eSpUQOTaGC1EF3t7edXp/o0aNVKqEyLExXIgq8Pf3R3h4uMXzJkIIhIeHw8/Pz0qVETkWhgtRBUIITJ8+vVbvffXVVzmZT3QfJ/SJHsD7XIjqjj0Xogf4+PggPj4eQggoSvUfkfI79Ldt28ZgIaqA4UJUhZiYGCQkJECr1UII8dBwV/nXtFotdu3ahejoaBtVSmSfGC5EjxATE4O0tDQsX74cYWFhlV4LCwvD8uXLkZ6ezmAhqgLnXIjMIKXEvn37MGDAAOzduxf9+vXj5D1RNdhzITKDEMI0p+Lj48NgIaoBw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhagGBoMB6enpOH/+PADgypUryM7OhtFotHFlRPaLjzkmegSdTof4+Hhs2rQJZ8+eRV5eHkpKSuDh4YHAwED06dMHEydORK9evaDRaGxdLpFdYbgQVeHw4cOYOXMmkpOT0a1bN8TGxqJTp07w9vaGTqfD8ePHsWPHDly+fBmjRo3Cu+++i8DAQFuXTWQ3GC5ED9izZw/Gjx8Pb29vLF68GIMHD0ZJSQni4uKg1+vRuHFjjB49GgaDAXFxcZg/fz7at2+PjRs3IigoyNblE9kFhgtRBZcuXcKzzz4LLy8vxMXF4YknnoAQAqmpqejSpQtyc3PRunVrHD9+HL6+vpBS4sCBAxgzZgyeeeYZrFmzBu7u7rb+NYhsjhP6RPeVlZVh0aJFyMnJwSeffGIKluoIIdC7d28sXboU3377LXbv3l1P1RLZN4YL0X2XL1/Gjh07MGLECPTu3bvGYCknhMDw4cPRo0cPrF69GqWlpVaulMj+cYkL0X2HDh1Cfn4+Ro4ciWvXrqGgoMD0WlpaGsrKygAAJSUlOHv2LBo3bmx6PSQkBCNGjMD8+fNx+/ZthIaG1nv9RPaE4UJ034ULF+Dp6YmwsDBMnToVBw8eNL0mpYRerwcA3Lx5E4MGDTK9JoTAhx9+iI4dO6KwsBA3b95kuFCDx3Ahuq+oqAgajQbu7u7Q6/UoLi6u8vuklA+9VlpaCq1WWymEiBoyhgvRfU2bNkVRURF0Oh2ioqLg5eVleq2oqAiHDh0yhUjPnj1NN04KIdCiRQvcvXsXiqLA19fXVr8Ckd1guBDd17VrVxgMBhw9ehTvv/9+pddSU1PRrVs35ObmIigoCFu2bIGPj4/pdSEEZs+ejeDgYA6JEYGrxYhMunfvjrCwMKxfvx4FBQVwcXGp9F85IQQURTF9XVEU3Lp1C1u3bkVsbCyaNGliw9+CyD4wXIju8/f3x//+7//ixIkTWLlypdlLivV6PRYuXIiioiJMnTrV7CXMRM6Mw2JEFYwfPx779+/H+++/D09PT7zyyivw8PAAAGg0Gmg0GlMvRkqJvLw8vPfee4iLi8NHH32Etm3b2rJ8IrvB7V+IHpCRkYFp06Zh586diImJwcyZM9GuXTtcvHgRRqMRbm5uaNOmDY4ePYply5YhKSkJCxYswCuvvFJp+IyoIWO4EFWhoKAAq1evxsqVK3Hnzh2EhYUhIiICjRo1Qk5ODi5evIibN2+ia9eueOedd9C3b18oCkeZicoxXIiqcfv2bezduxe//PILUk+dQvHRo/Dt0wcdevVCdHQ0oqKi4OnpaesyiewOw4XITGXHjkF27w7l2DEoTz1l63KI7Bon9InMZJpP4fAXUY34KSEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHV8ngsREamOPRciIlIdHxZGTkNKiYyUFOizsmxdSp0IRUFAhw7w8PKydSlEtcZwIachpcS5v/0N7qGhcPfwANQe8RUCcHGx+pMoM/bvR6d33kGzTp2s+nOIrInhQk5FuLvjid690eSdd4CSEpUPLoCnngKWLAE8PdU99n1SShzNz1c/GInqGcOFnE9BAXD0KFBcrP6xz50DXnsNCA9X/9hEToThQs6nVSvgH/8AysrUO+atW8CCBb/3KIxG9Y5L5KQYLuR8AgKAcePUPea5c8Dixb+HC4esiGrEpchE5hDC1hUQORSGC5Gl2HMhqhHDhcgcQrD3QmQBhguRpdhzIaoRw4XIHOW9FgYLkVkYLkSWYsAQ1YjhQmQOzrkQWYThQmQp9lyIasRwITIH51yILMJwIbIUA4aoRgwXInNwzoXIIgwXIkux50JUI4YLkTk450JkEYYLkaUYMEQ1YrgQmYNzLkQWYbgQWYo9F6IaMVyIzME5FyKLMFyIzMWAITIbw4WIiFTHcCEyR8XJfPZciGrEcCEylxAMFiIzMVyIzMGeC5FFGC5ERKQ6hguRubhajMhsDBcic/DufCKLMFyILCEley5EZmC4EJmDe4sRWYThQmQp9lyIasRwIbIUw4WoRgwXInNwWIzIIgwXIkux50JUI4YLkTl4jwuRRRguROZiwBCZjeFCZCmGC1GNGC5E5uBkPpFFGC5E5uKwGJHZGC5E5mDPhcgiDBcic7HnQmQ2hguRJRgsRGbR2LoAIodQcVjs3j0gJ8c6P8fV1TrHJapnDBcicwkBGAzAhAmAu7t1fkb//kDr1tY5NlE9YrgQmcPTEwgNBTIyfv/PWrKyGC7kFBgu5FSklCjIyYGi9vCSlMDnnwNXr1p33sXfH4YffrDe8YnqCcOFnIYQAt4tW+LiypUQLi62LqfWZFER3Jo0sXUZRHUipOTyF3IOUko4S3MWQkDw3hpyYAwXIiJSHe9zISIi1TFciIhIdQwXInOdOPH7vS4nTti6EiK7x3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4XIDFJK5OTkAABycnLAp4MTVY/hQlQNnU6HFStWICIiAgMGDgQADBg4EBEREVixYgV0Op1tCySyU0LyEoyoSomJiRg5ciQKCwsBAJ2lxAkAXQAkCQEA8PT0RHx8PGJiYmxXKJEdYs+FqAqJiYmIjY1FUVERpJQPDYOVf62oqAixsbFITEy0UaVE9ok9F6IH6HQ6hIaGoqioCEaj0fT1SMDUczlZ4fsVRYFWq0VaWhp8fHzqt1giO8WeC9ED1q9fj8LCwkrBUh2j0YjCwkJs2LDBypUROQ72XIgqkFIiIiICqampDw2FParnAgBCCISFhSElJQXi/nwMUUPGngtRBVlZWbhy5YrFS42llLhy5Qqys7OtVBmRY2G4EFWQn59fp/fn5eWpVAmRY2O4EFXg7e39yNcu4PchsQvVvL9Ro0Zql0TkkBguRBX4+/sjPDy8ynmTIvw+11JUxfuEEAgPD4efn5+1SyRyCAwXogqEEJg+fXqt3vvqq69yMp/oPq4WI3rAo+5zeRTe50L0MPZciB7g4+OD+Ph4CCGgKNV/RBRFgRAC27ZtY7AQVcBwIapCTEwMEhISoNVqIYR4aLir/GtarRa7du1CdHS0jSolsk8MF6JHiImJQVpaGpYvX46wsLBKr4WFhWH58uVIT09nsBBVgXMuRGaQUmLfvn0YMGAA9u7di379+nHynqga7LkQmUEIYZpT8fHxYbAQ1YDhQkREqmO4EBGR6hguRESkOoYLERGpjuFCRESqY7gQEZHqGC5ERKQ6hgsREamO4UJERKpjuBARkeoYLkREpDqGCxERqY7hQkREqmO4EBGR6hguRESkOoYLERGpjuFCVAODwYD09HScP38eAHDlyhVkZ2fDaDTauDIi+8XHHBM9gk6nQ3x8PDZt2oSzZ88iLy8PJSUl8PDwQGBgIPr06YOJEyeiV69e0Gg0ti6XyK4wXIiqcPjwYcycORPJycno1q0bYmNj0alTJ3h7e0On0+H48ePYsWMHLl++jFGjRuHdd99FYGCgrcsmshsMF6IH7NmzB+PHj4e3tzcWL16MwYMHo6SkBHFxcdDr9WjcuDFGjx4Ng8GAuLg4zJ8/H+3bt8fGjRsRFBRk6/KJ7ALDhaiCS5cu4dlnn4WXlxfi4uLwxBNPQAiB1NRUdOnSBbm5uWjdujWOHz8OX19fSClx4MABjBkzBs888wzWrFkDd3d3W/8aRDbHCX2i+8rKyrBo0SLk5OTgk08+MQVLdYQQ6N27N5YuXYpvv/0Wu3fvrqdqiewbw4XovsuXL2PHjh0YMWIEevfuXWOwlBNCYPjw4ejRowdWr16N0tJSK1dKZP+4xIXovkOHDiE/Px8jR47EtWvXUFBQYHotLS0NZWVlAICSkhKcPXsWjRs3Nr0eEhKCESNGYP78+bh9+zZCQ0PrvX4ie8JwIbrvwoUL8PT0RFhYGKZOnYqDBw+aXpNSQq/XAwBu3ryJQYMGmV4TQuDDDz9Ex44dUVhYiJs3bzJcqMFjuBABMBqNuHXrFjQaDdzd3aHX61FcXFzl90opH3qttLQUWq22UggRNWQMF2pw9Ho9zpw5g6SkJJw8eRJJSUk4deoU8vPzodVqodPpEBUVBS8vL9N7ioqKcOjQIVOI9OzZ03TjpBACLVq0wN27d1FYWIgxY8YgKioKkZGR6Ny5MyIjI9GsWTOz53CInAGXIpNT0+l0SEpKMgXJyZMncf78eZSWlkIIgbZt25oCwGAwYMGCBVi5ciUmTZpU6Tipqano1q0bcnNz0apVK/z73/+Gj4+P6XUhBGbPno3169dj+PDhuHDhAk6ePInc3FwAQGBgICIjIysFTps2beDi4lKf/xxE9YbhQk5BSon09HRTgJSHybVr1wAAHh4e6Nixo+nEHhkZiY4dO1bqnWRlZaF3797w9fXF7t27K03YP+o+l/KfffPmTfTt2xdDhw7Fhx9+CCEEpJS4fv16pXpOnjyJtLQ0AICXlxc6depkqqlz587o2LEjPDw86u8fjshKGC7kcMrKynDx4sVKw1onT55EVlYWAMDX1/ehXkLbtm3N2v/r73//O9544w3MmTMHs2bNMr2nunApLi7GjBkzsGPHDvz0009o27ZttT8jMzOzUm8qKSkJFy5cgNFohIuLC9q1a1cpcDp37gw/P786/qsR1S/OuZBdKywsxOnTpytd+Z8+fRpFRUUAgJYtW6Jz586YPn266YTcvHnzWs9vjB8/Hvv378f7778PT09PvPLKK6aehEajgUajMQ1lSSmRl5eH9957D3Fxcfjoo49qDBYACAgIwMCBAzFw4MBH/p5JSUmIj483/Z4tWrSoFJZ1/T2JrI09F7Ib5Vf0FXsjFy9erHRFX/EE++STT1rlij4jIwPTpk3Dzp07ERMTg5kzZ6Jdu3amWtzc3NCmTRscPXoUy5YtQ1JSEhYsWIBXXnlF1TmU0tJSpKSkPDSsVt5D8/PzM/Vsyv9dHn/8ce7QTHaB4UL1TkqJa9euPRQk5XMRnp6eePLJJysFSfv27aHVauutxoKCAqxevRorV67EnTt3EBYWhoiICDRq1Ag5OTm4ePEibt68ia5du+Kdd95B3759oSjW3/Ci4txSxX+/q1evAgDc3d3RsWPHSsOCnTp1qjS3RFQfGC5kVQaDAefPn3/oZFjVKqryk6E9raK6ffs29u7di19++QWnTp3C0aNH0adPH/Tq1QvR0dGIioqCp6enrcuETqfDqVOnKi1oOHfunGlV3H/8x39UCuvOnTujadOmti6bnBjDhVSTl5eH5OTkSkFy5swZlJSUAADCw8MfOsE50v0fx44dQ/fu3XHs2DE89dRTti6nRsXFxTh37lylv0f5/TzA71vWVJzD6dy5M8LCwhzm70H2jeFCtXL79u1K8wBJSUm4fPkypJRwdXVF+/btH5ofqbi01xGdOHECXbt2xfHjx9GlSxdbl1MrRqMRV65ceehvd/v2bQBA48aNHxqSfOKJJ+Dm5mbjysnRMFyoWuUnoweHtcpPRo0aNXro6tdZT0bOEC6PUvFiofz/KSkpAOC0FwtkXQwXMtHr9Th79my1wygPDmu1bt26Xiay7YEzh0tVzBnmfPDCwpGGOcm6GC4N1IPbojxqArjijXwNfQK4oYVLVcoXaDzYyylfoNG0adNKFx/c5qbhYrg4uZqWrj64LQqXrj4aw6VqNS0tL9/mpmLgdOjQgdvcODmGixOpaluUpKQkZGZmAvj/26JUHMowd1sUYrhY6sFtbqq6KZbb3DgvhouDqmq7kOTk5Ie2RakYJtwupG4YLnVXU7st3+aG7dbxMVwcQFZW1kNbgPAKsP4xXKyj4jY3VW1E+uA2N+xxOwaGix0xd1uUih+y+t4WpSFjuNSfquYKq3uEAucK7Q/DxUYeXHVT3bYoXHVjHxgutmfpKsfIyEgEBgbauuwGieFSD/Lz8037PvF+AcfFcLFP5mxz8+D9WdzmxvoYLiqr6k7n6rZF6dSpE5o0aWLrsskMDBfHUdPOEo0bN37ocQXOurOErTBcasmSbVG4R5NzYLg4vqr2xOM2N9bBcDGDwWDA6dOnuS1KA8dwcU6W7ubdpUsXBAcH27hq+8dwMcO1a9fQunVrPhejgWO4NBzVPYdo/PjxWLduna1LtHsMFzNU/CfiJGDDJaWElBJCCLaDBojnAcvwLiQzsCFRObaFhot/e8s4RbhIKZGSkmK6o9dRKYqCDh068EawWmI7ILYB++EUw2JGoxHTpk1DaGgovL29LXqvlBJlZWVwcXGx+ZXJr7/+innz5qFTp042rcNR1aUd2AODwQCj0YijR4+yHdRSeRsICQmBEAJeXl4OubDGGc4FTtFzAQB3d3dMmjQJQUFBZn2/0WhEcnIyVq9ejTNnzqBFixaYMmUKevXqZZPGKKVEfn4+nCDrbcrSdmBrUkrk5OTgH//4B77//nv07t0bkZGRbAd14O7ujueeew5//vOf0bx5c7z44ouIjo6Gh4eHzS8gzeEs5wKnCRdLGI1GbNmyBa+//jru3Llj+npCQgJWrlyJMWPGOOTVDjkWKSXu3r2LCRMmIDExEVJKaLVa9OzZ09alObxz584hKSkJR44cwXfffYehQ4di6dKlaNmypUMEjDNocGdQKSV27tyJadOm4c6dO+jWrRuWLVuGZ555Brm5uXjjjTfw73//2+GvGhoyvV6P3377Denp6TAYDHb7tywpKcHs2bORmJiIJk2aYN68eZg7dy4vbFTQpUsXfPXVVxgzZgw0Gg22bt2KESNG4MyZM3bbHpxNg2rFUkpcunQJM2fOhE6nQ3R0NLZv346ZM2di8+bNiIqKQkZGBubPn296vgQ5nuTkZERFRaFr164YO3asafsdeyKlxLfffovNmzfDzc0NH3zwAebNm2ezYVln4+fnh2HDhmHdunXYuHEjmjdvjqSkJLz44ou4ePGi3bUHZ9SgWrFer8fcuXNx9epVPP744/j0008RHBwMIQSCgoLw3nvvwcvLCz/99BP27NnDBuig3N3dUVJSgpycHHz99dd4/vnn7S5gcnJysGTJEuj1erzwwgsYO3YsQ0VlQgi4urpi+PDh+Oqrr9C6dWucOXMGkyZNwu3bt+2qPTijBtOapZTYvn07vvvuO2i1WixevNh01z3we0Ps3bs3hgwZgpKSEqxatQp6vd7GVVNtRERE4JdffkFcXBxatGiB5ORkvP766ygoKLB1aQB+b4tbt25FcnIymjZtirfeeot7zlmREAJ/+MMfsGbNGjRt2hSHDh3CW2+9xdEJK2sw4ZKVlYUlS5agpKQEL7zwAv7zP//zoYk9jUaDqVOnQqvV4uDBgzh+/DivbhyQVqtF+/btMXz4cPz9739Ho0aNkJiYiM2bN9vF3/PevXv4/PPPYTQa8ac//Qnt2rXjJLOVCSHQt29fLF26FFqtFlu2bMGqVatgNBptXZrTahDhIqXE+vXrcebMGQQHB+Ott96Cq6vrQ98nhED37t3Ro0cPFBYW4quvvrKLkxHVjhACMTExmDBhAkpLS/G3v/3NtGu1rUgpsXfvXiQnJ8PPzw8TJ05ksNQTRVHwpz/9CdOmTYPRaMSiRYtw4MABfsatpEGES3p6OlatWgUpJSZOnIi2bds+8gPt4eFhWoqckJCAu3fv1nO1pCYXFxe89tpraN68OVJSUrBp0yabnkwMBgPWr1+P0tJSPPvss3j88ccZLvVIo9Hg7bffxtNPP42cnBy8+eabyMjIYMBYgdOHi5QS69atw9WrV9GyZUtMmTKl2olTIQSio6MRHByM3377DT///DMbngMTQqBly5YYP368qS3YcmuQCxcuYP/+/XBzc8O4ceP42Op6JoSAj48Pli1bhuDgYBw/fhyLFi1CaWmprUtzOk4fLmlpaVi7di0AYNKkSQgNDa3xPSEhIejfvz+MRiO++eYblJWVWbtMsiJFUTBu3DgEBQXh0qVL2LVrl00uGKSU2LZtG3Jzc9GhQwf84Q9/YK/FBoQQ6Ny5M+bMmQMXFxesWbMGCQkJvIhUmVOHS/lcy40bN9CqVSv893//t1kfZkVRMHz4cLi4uODAgQO4detWPVRL1tSqVSsMHToUZWVl2LBhg01WAt67dw/bt28HAIwYMcIh9z9zFoqiYPz48Rg2bBgKCwvx9ttv48aNGwwYFTl1uKSnp5t6LRMnTkRISIhZ7xNCoGfPnnjsscdw584d/Prrr2x0Dk5RFIwdOxZarRZHjhxBUlJSvf5NpZQ4duwYLly4AB8fHwwbNoy9FhvTarVYtGgRWrdujYsXL2LevHmmp09S3TltuEgpsWHDBly/fh2tWrXCuHHjLPowBwYGok+fPjAajUhISOCSRQcnhEDXrl3RtWtXFBQU4Ouvv67Xn19+n1VJSQm6d++OiIiIev359DAhBNq0aYOFCxfCw8MDW7Zs4QpRFTltuKSnp+OLL74AAEyYMAGPPfaYRe9XFAWDBw+Goig4ePAgMjMzrVEm1SOtVosXXngBQgjs3LmzXif2s7OzsWfPHggh8Mc//rHKpfBU/4QQ+K//+i+8+OKLKCkpwbx583D69GkGjAqcMlyklPjyyy9x7do100ohS4cgyofGAgMDcfPmTW5m6QSEEBg8eDACAwNx9erVervHQUqJI0eO4Nq1awgICMDAgQM5JGZHXF1dMX/+fHTu3BlpaWl47bXXkJWVxc97HTlduEgpcf36daxZswbA7yvELO21lAsJCUHXrl1RWlqKPXv2qFkm2UiLFi3w9NNPo7S0FPHx8fUy3CmlxI4dO1BaWooePXqgRYsWVv+ZZD4hBEJCQvDRRx/Bz88P+/fvx5w5c7j9Ux05Zbh89tlnuHHjBtq0aVOrXks5jUaD6OhoAMDPP/+M/Px8NUslG3BxccGIESPg4uKCn3/+uV5WAmZnZ2Pv3r0QQmDo0KHQaBrkY5TsmhACffr0wYIFC+Dm5oZ169bhgw8+gMFgsHVpDsvpwuXUqVP44osvoCgKpk+fjmbNmtX6WOX7EXl7e+PKlSu4ePGiipWSLZT/TR977DHcunXL6jfJlq8Su3HjBgICAtCvXz8OidkpRVEwceJETJ8+HUajEYsXL8ayZcvYg6klpwqXoqIivPvuu8jKykK3bt3w4osv1vmD3KZNG7Rt2xaFhYW8W99JBAUFoV+/fjAajdi+fbtVb5KVUiIhIQEGgwHdu3dH8+bNrfazqO7c3Nwwb948/M///A9KSkrw17/+FbNnz4ZOp+Nn30JOFS67d+9GQkICPD09MXfuXPj4+NT5mJ6enujXrx8A4Mcff+Q2EU5ACGG6SfbgwYNIS0uz2s/S6XSmIbHnnnuOQ2J2TggBLy8vLFu2DH/+858hpcSKFSswatQoJCcn85YECzhVuPTs2ROvvvoqpkyZgkGDBqk2/DBgwABoNBokJSXh5s2bqhyTbKf8+R4tWrTA3bt3sW/fPqtclUopceLECVy9ehW+vr4cEnMQQgh4e3tj6dKlWLRoERo3bowffvgBMTExWLJkCTIzM9mLMYNThUtQUBAWL16MxYsXq3aFWL4PUUhICDIzM3HkyBFVG5aUkg3VBgICAtC/f3/T44at1SNNSEhASUkJunbtilatWlnlZ5D6hBDw8PDAjBkzsG3bNnTr1g0ZGRmYO3cuBgwYgI0bNyIvL4+f3Wo4VbgAv68Gcnd3V/UKMSAgAFFRUTAajfjxxx9VbVAZGRlYv349t/avZ0IIDBs2DBqNBocPH8Zvv/2m+s+4d+8efvjhBwBAbGwsb5x0QC4uLujbty927dqFhQsXolmzZjh9+jQmTZqEwYMHY8eOHSguLmbIVMHpwsUaFEUx3fh24MAB3Lt3T5XjSimxceNGTJ48GaNHj+ZS53okhEBUVBRatmyJzMxM/PTTT6qfIJKSknDlyhX4+PjwxkkHJoSAv78/Zs2ahX379mHatGnw9vbGwYMHMWrUKIwdOxanT5/mfMwDGC5mEEKgd+/eaNy4Ma5du4Zz586pctyMjAysWbMGZWVl6NOnD7y8vFQ5LpnH398fAwcOtMrQmJQSu3btgl6vR2RkJMLDw1U7NtmGoiho06YNli9fjh9//BGjR4+GoijYtm0bYmJi8Mknn6CwsJC9mPsYLmZq1aoV2rVrh+LiYlUmgKWU2Lp1K1JSUhASElKnmz2pdspvanR1dcW//vUvXL9+XbVj5+XlITExEQAwePBguLm5qXZssh0hBFxcXBAZGYkvv/wS8fHx6NatG+7evYs333wTL7/8Mu7evcuAAcPFbB4eHqYlyT/99FOdt+bOzc3FF198AaPRiNGjR3Oy1waEEOjevTtatWpluotejZOClBKnTp3CpUuX0LhxY8TExPDCwckIIeDm5oaYmBgkJCTg9ddfh6urKzZt2oQxY8bw2TBguJhNCIH+/fvD1dUVycnJdbo3QkqJxMREnD59Gn5+fpgwYQJPPjbi6+uLQYMGQUqJ7777TrXtPnbu3Ini4mJERkaiTZs2qhyT7I8QAgEBAVi0aBE+/fRT+Pn5Yd++fRg3bhzS09MbdMAwXCzw5JNPonnz5sjOzsahQ4dq3XCKi4vx+eefo7S0FEOGDEHbtm1VrpTMVT405ubmhiNHjiA1NbXOx7x37x527doFABg6dCjc3d3rfEyyb66urnjppZewdu1aBAYG4tdff8XUqVORk5PTYAOG4WIBX19f9OzZ09TzqM3qECklDh48iMOHD8PLywuTJk2Ci4uLFaolc5QPjbVp0wbZ2dn4/vvv63QyKN9LLCUlBT4+Pnj22WfZK20gFEVBbGwsPv30UzRp0gS7d+/G7NmzG+zeZAwXCyiKgpiYGCiKgkOHDtXqYVOlpaVYvXo1iouL0bdvXzz11FM8+dhYkyZNEBsbCwD45ptvUFxcXOtjSSnxzTffmJ44yVViDYuiKBg+fDgWLlxo2l35888/b5DLlBkuFhBCoFevXggICEBaWprFDxCTUuL06dNITEyEm5sbpkyZwlVEduKPf/wjPD09ceLECSQnJ9e693L37l18//33EEJg5MiRvHGyAXJxccHkyZMxZcoUlJaWYsGCBfjll18a3PAYw8VCjz32GLp3747S0lIkJCRY1GCMRiPWrl2Le/fuoUuXLujfvz97LXZACIFOnTohMjIShYWF2Lp1a62OI6XE3r17cePGDTRr1oyrxBowNzc3vPPOO3jmmWeQnZ2NGTNmIC0trUEFDMPFQhqNBrGxsRBCYO/evdDpdGa/NzU1FfHx8XBxccGkSZN406Qd0Wq1eOGFFyCEwPbt25GRkWHxMQwGAzZv3gyj0Yjo6OhaPwGVHJ8QAr6+vli+fDmaN2+O06dPY/bs2XUacnU0DBcLlS9J9vPzw9WrV3H06FGzrkaMRiO+/PJL3LlzB48//jiGDRvGq1o7IoTAkCFDEBwcjKtXr1o8sV8+5HngwAG4u7tjzJgxUBR+vBoyIQQ6dOiAxYsXQ6vV4p///CfWrFnTYOZf2PproVWrVujRowcMBgO++eYbs05CN27cwP/93/9BCIGJEyfCz8+vHiolSzRv3hxDhgyB0WjEunXrUFRUZPZ7pZTYsGED8vLy0KVLF/To0YMXDwQhBJ5//nlMnjwZpaWlWLhwIQ4fPtwghscYLrWg0WgwcuRIKIqCxMRE3L59u9rvLz9Z/fbbbwgPD8fo0aN54rFDiqJg/Pjx8Pb2xpEjRyyahE1NTcXXX38NRVEwYcIEDnmSiUajwZw5c9CrVy9kZmZixowZuHXrltMHDMOlFoQQGDhwIEJCQpCWloY9e/Y8sqFIKZGamoq1a9dCCIHJkycjKCionismcwgh0KVLFwwaNAh6vR4ff/yxWWPkRqMRa9aswe3bt9G2bVsOeVIl5bsqf/TRR2jWrBmOHz+Ot99+26KesSNiuNRSSEgIBg8eDKPRiA0bNjzyJGQ0GvHxxx8jPT0dbdu2xbhx43jisWOurq6YPn06PD09sW/fvhrnXqSUOH/+PL788ksoioKXX34ZAQEB9VgxOYLyC5dFixbBw8MDX331FVasWOHUj01nuNSSEAIvvfQSPD098a9//QsHDx586CQkpcThw4exYcMGaDQazJw5E02bNrVRxWQOIQR69uyJYcOGQa/X47333kNGRsYjA6b8e+7evYsnn3wSY8aM4cUDVUkIgTFjxmD69OkwGo1YtGgRtmzZ4rQT/AyXWhJC4KmnnkK/fv1QXFyMlStXVuq9SCmRk5ODv/zlL8jNzcXTTz/NuRYH4erqilmzZiE4OBhJSUlYsmRJlRtaGo1GbN68Gdu2bYOHhwdmz57NhRpULVdXV/zlL3/BiBEjUFBQgBkzZmDHjh1OGTAMlzpwc3PDa6+9Bk9PT+zZswfx8fGmK1y9Xo8FCxbg4MGD8PPzw8KFC+Ht7W3jiskcQgi0b98es2bNgouLCz777DPTRqPlpJT48ccf8fbbb8NgMGDs2LEYMmQILx6oRo0aNcLKlSvRr18/ZGVlYdKkSdi8eTMMBoNTTfIzXOpACIGnn34ao0aNQklJCWbNmoXvv/8e169fx+zZs7Fq1Sq4uLhgzpw5iIqK4onHgSiKgsmTJ2PcuHHQ6/WYNWsW5s6di9TUVKSnp2PVqlUYN24cMjIy0KtXLyxYsIBbvZBZhBAICgrCunXrTAEzdepUvPHGG7h8+TLKyspsXaIqNLYuwNG5urpi/vz5SE5OxvHjx/H888/D29sbmZmZ0Gg0mD59Ol5++WXeUOeAPDw88MEHH0Cv1yMuLg5Lly7F6tWr4erqapqH6dmzJ9auXYugoCBePJDZhBBo3rw5Nm3ahDfffBP//Oc/8cknnyAuLg5Dhw5FSEiIrUusM57x6kgIgdDQUGzatAnPPfccFEWBTqdDy5YtsXTpUixcuJDP83BQQgj4+Phg1apV+OCDDxAREYGCggJkZ2cjODgYr7/+OuLj4xEeHs5gIYuV92BWr16NVatWoUOHDsjNzUVxcbFT9IKdpudSPoFuqz9KQEAAPvvsM6SkpCA/Px9hYWFo2rQpioqKzF7P3lCf+6Ama7WDl156Cc899xxSU1NhMBjQsmVLBAcHQ1EU5OTkqPqz2A7qxtbngtoYPnw4+vXrh6NHjyIgIAD79++3dUl15hThIoRAixYt8PHHHzv0g7eKiorQpEkTW5fhsNgOiG3AfgjpBMsTpJROs8pCCMEhllpiOyC2AfvhFOFCRET2hRP6RESkOqeYc6kPFTt4jtxVpdpjGyC2AfOx52KmkydPQlEUnDx50talkI2wDRDbgPkYLkREpDqGCxERqY7hQkREqmO4EBGR6hguRESkOoYLERGpjuFCRESqY7gQEZHqGC5ERKQ6hgsREamO4UJERKpjuBARkeoYLkREpDqGCxERqY7hQkREqmO4mEFKiZycHABATk6O0zyjm8zHNkBsA5ZhuFRDp9NhxYoViIiIwMCBAwEAAwcOREREBFasWAGdTmfbAsnq2AaIbaB2hGT8VikxMREjR45EYWEhgKofb+rp6Yn4+HjExMTYpEayLrYBYhuoPYZLFRITExEbGwspJYxG4yO/T1EUCCGQkJDAhuVk2AaIbaBuGC4P0Ol0CA0NRVFRUbUNqpyiKNBqtUhLS4OPj4/1CySrYxsgtoG645zLA9avX4/CwkKzGhQAGI1GFBYWYsOGDVaujOoL2wCxDdQdey4VSCkRERGB1NRUi1aCCCEQFhaGlJQU0zgsOSa2AWIbUAfDpYLMzEwEBgbW6f3+/v4qVkT1jW2A2AbUwWGxCvLz8+v0/ry8PJUqIVthGyC2AXUwXCrw9vau0/sbNWqkUiVkK2wDxDagDoZLBf7+/ggPD7d4vFQIgfDwcPj5+VmpMqovbAPENqAOhksFQghMnz69Vu999dVXOYnnBNgGiG1AHZzQfwDXtxPbALEN1B17Lg/w8fFBfHw8hBBQlOr/ecrvzN22bRsblBNhGyC2gbpjuFQhJiYGCQkJ0Gq1EEI81M0t/5pWq8WuXbsQHR1to0rJWtgGiG2gbhgujxATE4O0tDQsX74cYWFhlV4LCwvD8uXLkZ6ezgblxNgGiG2g9jjnYgYpJbKzs5GXl4dGjRrBz8+Pk3YNDNsAsQ1YhuFCRESq47AYERGpjuFCRESqY7gQEZHqGC5ERKQ6hgsREamO4UJERKpjuBARkeoYLkREpDqGCxERqY7hQkREqmO4EBGR6hguRESkOoYLERGpjuFCRESq+3+xy2M5kM1RfAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 500x400 with 7 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.plot(beta=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d6d85bda",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
